Recommendations for Kubernetes
While Pyramid strongly recommends using the established configuration tools for creating a Kubernetes cluster, its entirely possible for users to build their own configurations. The following items will help explain the ingredients of a Pyramid cluster and the basic requirements.
In general, Pyramid recommends admins use the configuration tools to create Kubernetes cluster configurations.
Minimalist Setup
Services
- A Pyramid cluster must at least contain 1 router service, 1 web service and 1 runtime service for it to function. We strongly recommend 2 routers for fail-safe (see container types below).
- The task service must be added for printing, running of data preparation tasks and publication tasks. If the cluster is not performing any of these activities, its possible to ignore the task service
- The AI service runs natural language querying and all Python and R engines. Since there are numerous features throughout the product, at least one AI service is recommended.
- The GIS service allows geospatial analytics on maps. If this is not going to be used, it can be easily left out of the cluster.
Database Repository
The repository is not optional. It should be hosted in a persistent location that can be easily backed up and restored. Cloud hosted RDS is recommended when deploying in the cloud. Using a database inside the Kubernetes cluster it self is DEFINITELY NOT recommended.
File Storage
The Pyramid cluster does not facilitate its own persistent file storage (needed for rendered publications or holding uploaded data files sources). A persistent, hosted storage engine must be supplied to facilitate this. (For example AWS S3, Azure Blob storage or SFTP).
Memory and CPU
Pyramid does NOT recommend launching a Kubernetes cluster of Pyramid with less than 12 cores and 16GB of memory. Preferably, any single node should be at least 8 cores and 12GB memory in size.
Container Types
The following container types indicate where to find each container and what its used for. See scaling documentation for more details.
- pyramidanalytics/rtr The Router Server is used to route all internal requests between the different nodes in the Pyramid cluster. Load balancing of external incoming requests to the web servers should be handled by an external web load balancing technology.
docker pull pyramidanalytics/rtr
- pyramidanalytics/ws The Web Server is used to host the client applications and act as the gateway to the Pyramid cluster.
docker pull pyramidanalytics/ws
- pyramidanalytics/rte The Runtime Server is used to process all live, interactive requests in the Pyramid cluster. This includes all data queries - the backbone of the application.
docker pull pyramidanalytics/rte
- pyramidanalytics/te The Task Server is used to process all batch related activities required in the system. This includes batch publication jobs, ETL data processing jobs and other background activities.
docker pull pyramidanalytics/te
- pyramidanalytics/ai The AI and Augmented Analytics Server is used to process all AI related activities in the Pyramid cluster. This includes Python, R , NLQ etc. The "AI" container comes with base Python and R preinstalled.
docker pull pyramidanalytics/ai
- pyramidanalytics/gis The GIS server contains the information to drive geospatial analysis in Pyramid
docker pull pyramidanalytics/gis